1. Field of the Invention
The apparatus and methods consistent with the present invention relates to portable computers, such as bar code reader computer terminals connected to wireless networks, and more particularly to the network architecture, operating system APIs, configuration software, and inter-network messaging and communications protocols needed to support communications between application programs being executed in separate mobile units operated in such networks, and from network to network.
2. Background of the Invention
Wireless local area networks use infrared or radio frequency communications channels to communicate between portable or mobile computer terminals and stationary access points or base stations. These access points are in turn connected by a wired (or possibly wireless) communication channel to a network infrastructure which connects groups of access points together to form a local area network, including, optionally, one or more servers or host computer systems.
One increasingly important type of mobile computer are those which are coupled to or incorporates a bar code symbol reader, and are now in very common use for portable data collection applications. Typically, a bar code symbol comprises one or more rows of light and dark regions, typically in the form of rectangle. The relative widths of the dark regions, the bars and/or the widths of the light regions, the spaces, encode data or information in the symbol. A bar code symbol reader illuminates the symbol and senses light reflected from the regions of differing light reflectivity to detect the relative widths and spacings of the regions and derive the encoded information. Bar code reading data collection application software, executing on such mobile computers, improve the efficiency and accuracy of data input for a wide variety of applications. The ease of data input in such systems facilitates more frequent and detailed data input, for example, to provide efficient taking of inventories, tracking of work in progress, and make use of applications programs that may communicate to and interoperate with other applications programs operating on a remote host or server which the mobile computer communicates with through a wireless network.
Wireless and radio frequency (RF) protocols are known which support the logical interconnection of mobile computers and roaming terminals having a variety of types of communication capabilities to host computers. The logical interconnections are based upon an infrastructure in which at least some each of the remote terminals are capable of communicating with at least two of the access points when located within a predetermined range therefrom, each terminal unit being normally associated with and in communication with a single one of such access points. Based on the overall spatial layout, response time, and loading requirements of the network, different networking schemes and communication protocols have been designed so as to most efficiently regulate the communications between a given terminal and the network through the selected access point. One such protocol is set forth in the ISO/IEC 8802-11, or ANSI/IEEE Std 802.11 entitled “Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications” (1999 edition) available from the IEEE Standards Department, Piscataway, N.J. (hereinafter the “IEEE 802.11 Standard”).
There are a variety of currently deployed and emerging wireless communications standards for cellular voice and data communications, often referred to as “wide area networks” (WANs) to distinguish them from local area networks. First generation wireless systems (1G) utilized analog technology. Second generation (2G) systems, using digital technology, were introduced in the mid 1990s including GSM, or the “global system for mobile communications”, and CDPD or “cellular digital packet data”. GSM utilizes time division multiplying over a 200 kHz channel. CDPC transmits data over dedicated 30 kHz cellular channels at speeds up to 19.2 kbps. Systems referred to a 2.5G offer mobile data services at rates from 56 kbps to 144 kbps, while 3G systems will operate at data rates from 144 kbps to 2Mbps.
One of the most important technologies for wireless communications is CDMA. In a spread spectrum system, one can multiplex users by assigning them different spreading keys, which is called a code division multiple access (CDMA) system. The CDMA modulation technique is one of several techniques for facilitating communications in which a large number of system users are present in the coverage area of a base station. The use of narrowband CDMA in a digital cellular spread spectrum communications system was adopted by the Telecommunication Industry Association in 1993 as TIA/EIA standard IS-95.
Currently deployed 800, 900 MHz band systems include AMPS, TDMA /IS-136, CDMA/IS-95, iDEN, GSM, and I-mode. Other emerging network standards include cdmaOne, CDMA 1X, and 1XEV DV (in which voice and data share a 1.25 MHz channel). There are several technologies that fall under terminology of 2.5G. For example, 1XRTT is the technology for upgrading CDMA networks. Another widely discussed 2.5G technology is GPRS (the General Packet Radio Service), intended for upgrading GSM networks. GPRS was initially deployed in 2000 and operates using multiple time slots that can each carry data at 1s4.4 kbps.
Other multiple access communication system techniques, such as time divisional multiple access (TDMA), frequency divisional multiple access (FDMA) and AM modulation schemes such as amplitude companded single sideband (ACSSB) are known in the art. The use of CDMA techniques in a multiple access communication system is disclosed in U.S. Pat. No. 4,901,307. The framing and transmission of data using the Internet Protocol (IP) over a CDMA wireless network is described in TIA/EIA/IS-707-A, entitled “Data Service Options for Spread Spectrum Systems”, referred to as IS-707.
The International Telecommunications Union recently made a call for proposals for methods of providing high rate data and high quality services over wireless communications channels. A first of these proposals was prepared by the Telecommunication Industry Association, entitled “The cdma2000 ITU-R RTT Candidate Submission”, often referred to as cdma2000. A second of these proposals was issued by the European Telecommunications Standards Institute (ETSI), entitled “The ETSI UMTS Terrestrial Radio Access (UTRA) ITU-R RTT Candidate Submission”, also known as wideband CDMA or W-CDMA. A third proposal was submitted by U.S. TG 8/1 entitled “The UWC-136 Candidate Submission”, and is referred to as EDGE.
EDGE is an acronym for “Enhanced Data for GSM Evolution”. EDGE is an enhanced modulation technique that is backward compatible with GSM networks, and provides throughput three times that of GPRS. The contents of these submissions are public record and are known in the art.
One important future network is UMTS/IMT2000. The UMTS Forum is a non-profit organization for publicizing established in 1996 to increase awareness of the UMTS/IMT-2000 third-generation mobile communications systems. In establishing the forum, members intended to create a standard for 3G applications and services that would be globally interoperable and can be accessed by any mobile device from anywhere in the world. Universal Mobile Telecommunications System (UMTS) is a service based on the global system for mobile (GSM) communications standard.
The general concept of seamless roaming among multiple networks is known in the prior art. U.S. Pat. No. 6,091,951 describes a plurality of networks (LANs and WANs) wherein the mobile terminal is registered to at least one access point in one of the networks. The mobile terminal is assigned a first network address, and when the mobile terminal is registered to at least one access point in another of the plurality of LANs, the mobile terminal is assigned a second network address being different form the first network address. The system includes a gateway controller, coupled to the LANs, for serving as an intermediary for communications between the mobile terminal and the system backbone so order that in the event the mobile terminal is assigned a different network address by virtue of registering with an access point in another of the LANs, the device is able to maintain communications with the mobile terminal without requiring knowledge of a change in the network address of the mobile terminal.
More particularly, U.S. Pat. No. 6,091,951 patent describes a seamless communications transition involving a first mobile terminal and device, and a second mobile terminal and the device. A first mobile terminal may suspend a previously established session between the first mobile terminal and a device. The first mobile terminal notifies the gateway through which the session is established that the mobile terminal wishes to suspend the session. Rather than terminating the session, the gateway is configured to maintain the session in its tables and begin buffers in memory any information received via the network intended for the first mobile terminal. In the event a second mobile terminal wishes to resume the session at a point at which the first mobile terminal suspended the session, the second mobile terminal then notifies the gateway. The second mobile terminal then notifies the gateway that it wishes to resume the session suspended by the first mobile terminal. The gateway is configured to begin in turn to forward communications between the device and the second mobile terminal in place of the first mobile terminal.
Any information which has been buffered by the gateway is sent to the second mobile terminal together with state information regarding the state of the connection between the first mobile terminal and the gateway at the time of the suspension. As a result, the second mobile terminal can pick up where the first mobile terminal left off without completely terminating an initial session and restarting a new session.
Another feature of the present invention relates to the implementation of APIs for different communication interfaces. One approach, as noted in prior art U.S. Pat. No. 6,044,408, utilizes a software architecture with APIs that include a service that returns information on the hardware and software capabilities for the respective media type. The hardware capabilities refer to the attributes and functionality of the underlying hardware, while the software capabilities refer to the functions of the available software emulators. This service enables applications to capabilities, an application can choose for example, to exploit a certain function if available in the hardware, or avoid using the function if only provided in software. Also, an application can choose to use its own software emulation if a particular hardware function is not available.
To take advantage of this service, an application can invoke it at initialization to learn the available capabilities. The application can then optimize itself based on the reported available capabilities. If the application does not invoke the service, but instead attempts to use a capability that is not available, the API will tell the application that the capability is not available by returning an error parameter.
The APIs can also optimize a particular API request even in cases in which the application has not done so. To optimize an API request, the API breaks down the request in to the individual capabilities needed to process the request. It then determines whether the capabilities for the request are available hardware capabilities. If so, it instructs the hardware to carry out the request and passes in the necessary parameters.
Most relevant to the present invention, if the necessary hardware capabilities are not available to handle the API request, the API determines whether the capabilities for the request are available software capabilities. If so, the API handles the request using the available emulators. Otherwise, the API tells the application that the API request cannot be processed by returning an error in most cases.
Prior to the present invention, there has not been a simple, automatic technique without the use of a network management unit or gateway controller which would allow a user of a mobile computer to maintain connectivity and continuing in data exchange operations of applications programs with a remote computer when communications over a wireless local area network between the computers, and synchronization between the applications executing therein, become impeded or interrupted.